package ltd.hanamaki.study.collectionframe;

import java.util.*;

public class HashMapDemo {

    public static void main(String[] args) {

        /* 创建一个 map  容器  键：值 容器 */
        HashMap<Integer, String> map = new HashMap<>();

        /* 向容器中添加 元素  */
        map.put(1, "hello");
        map.put(2, "hello3");
        map.put(3, "hello4");
        /* 在  map 容器中  不能 存放 两个键 相同的 数据 如果键相同 ，数据被覆盖 */
        map.put(3, "hello5");

        System.out.println(map);

        /* 在 map 容器中如何 获得元素的值  */
        String s = map.get(1);
        System.out.println(s);

        /* map中 如何 获得容器的大小  */
        int size = map.size();
        System.out.println(size);

        /* map 容器的遍历 */
        /* 第一种方式 使用 entrySet()  方法来进行遍历 */
        /* ;可以使用 ctrl + shift +enter  来进行补齐*/
        /* 方法的返回值 可以使用  alt + enter + enter  */
        Set<Map.Entry<Integer, String>> entries = map.entrySet();
        /* 通过 迭代器对象来遍历 set  容器 */
        Iterator<Map.Entry<Integer, String>> iterator = entries.iterator();
        while (iterator.hasNext()) {
            Map.Entry<Integer, String> next = iterator.next();
            Integer key = next.getKey();
            String value = next.getValue();
            System.out.println(key + "======" + value);
        }

        /* 第二种方式 使用 keySet() 方法 来进行遍历 */
        Set<Integer> integers = map.keySet();
        for (Integer key : integers) {
            System.out.println(key+"========----=="+map.get(key));
        }

        /* 第三种 方式 使用 values() 方法 来进行变脸  */
        Collection<String> values = map.values();
        for (String value : values) {
            System.out.println(value);
        }


    }
}
